package com.equipment;

import com.util.EncodingUtil;

/**
 * 微波收发指令
 * @author mln
 *
 */
public class WaveSendRequest {

	private String STX = "55AA"; // 帧开始标志
	private String RSCTL = "00"; // 串口帧序列号
	private String Length = ""; // 数据长度
	private String code = "A5"; // 代码

	private String DataCount = "";//重发次数,如果为0，表示发送后不需要接收。在OBU模式下，此值为0。
	private String Interval = "";//数据接收超时间，也就是DSRC数据间隔，单位：毫秒。在OBU模式下，此值为0
	private String DSRCData = "";

	private String bcc = "";// 异或校验

	/**
	 * 拼接A5指令
	 * @param dataCount
	 * @param interval
	 * @param dsrcData
	 * @return
	 */
	public String command(String dataCount, String interval, String dsrcData){
		this.DataCount = EncodingUtil.addzero(dataCount, 1);
		this.Interval = EncodingUtil.addZero(interval, 1);
		this.DSRCData = dsrcData;
		String DATA = DataCount + Interval + DSRCData;
		Length = EncodingUtil.desToHex(DATA.length()/2, 4);
		DATA = RSCTL + Length + code + DATA;
		bcc = EncodingUtil.yihuo(EncodingUtil.change(DATA));
		return STX + DATA + bcc;
	}
}
